/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dialogs;

import dialogs.autenticacao.JFrameLogin;
import dialogs.emprestimos.*;
import dialogs.usuario.*;
import dialogs.obra.*;
import dialogs.perfil.*;
import dialogs.relatorio.JDialogRelatorio;
import javax.swing.table.DefaultTableModel;
import libcontrol.model.Atividade;
import libcontrol.model.Debito;
import libcontrol.model.Emprestimo;
import libcontrol.model.Usuario;
import libcontrol.util.Util;

/**
 *
 * @author Filipe Genu
 */
public class JFramePrincipal extends javax.swing.JFrame {

    private static Usuario usuarioLogado;

    public JFramePrincipal(Usuario usuario) {
        initComponents();
        usuarioLogado = usuario;
        preencherTabela();
        definirMenus();
    }

    public static Usuario getUsuarioLogado() {
        return usuarioLogado;
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTableEmprestimos = new javax.swing.JTable();
        jLabelEmprestimos = new javax.swing.JLabel();
        jLabelTotalDebito = new javax.swing.JLabel();
        jLabelValor = new javax.swing.JLabel();
        jButtonLogout = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenuUsuario = new javax.swing.JMenu();
        jMenuItemCadastrarUsuario = new javax.swing.JMenuItem();
        jMenuItemListarUsuario = new javax.swing.JMenuItem();
        jMenuPerfil = new javax.swing.JMenu();
        jMenuItemCadastroPerfil = new javax.swing.JMenuItem();
        jMenuItemListarPerfil = new javax.swing.JMenuItem();
        jMenuObras = new javax.swing.JMenu();
        jMenuItemCadastrarObra = new javax.swing.JMenuItem();
        jMenuItemConsultarAcervo = new javax.swing.JMenuItem();
        jMenuEmprestimos = new javax.swing.JMenu();
        jMenuItemEmprestimoObra = new javax.swing.JMenuItem();
        jMenuItemDevolucaoObra = new javax.swing.JMenuItem();
        jMenuItemRenovacaoObra = new javax.swing.JMenuItem();
        jMenuItemRegistrarPagamento = new javax.swing.JMenuItem();
        jMenuRelatorios = new javax.swing.JMenu();
        jMenuItemRelatorioObrasEmprestadas = new javax.swing.JMenuItem();
        jMenuItemRelatorioObrasReservadas = new javax.swing.JMenuItem();
        jMenuItemRelatorioObrasDevolucaoAtraso = new javax.swing.JMenuItem();
        jMenuItemRelatorioObrasMaisRetiradas = new javax.swing.JMenuItem();
        jMenuItemRelatorioUsuarioEmprestimoAtivo = new javax.swing.JMenuItem();
        jMenuItemRelatorioUsuarioDevolucaoAtraso = new javax.swing.JMenuItem();
        jMenuItemRelatorioUsuarioDebitoPendente = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("LibControl");
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jTableEmprestimos.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Exemplar", "Obra", "Data de Emprestimo", "Prazo de Devolução", "Débito"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTableEmprestimos);
        if (jTableEmprestimos.getColumnModel().getColumnCount() > 0) {
            jTableEmprestimos.getColumnModel().getColumn(0).setResizable(false);
            jTableEmprestimos.getColumnModel().getColumn(1).setResizable(false);
            jTableEmprestimos.getColumnModel().getColumn(2).setResizable(false);
            jTableEmprestimos.getColumnModel().getColumn(3).setResizable(false);
            jTableEmprestimos.getColumnModel().getColumn(4).setResizable(false);
        }

        jLabelEmprestimos.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N
        jLabelEmprestimos.setText("Lista de Empréstimos");

        jLabelTotalDebito.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N
        jLabelTotalDebito.setText("Total Débito");

        jLabelValor.setFont(new java.awt.Font("Arial Black", 0, 14)); // NOI18N
        jLabelValor.setText("R$ 0,00");

        jButtonLogout.setText("Logout");
        jButtonLogout.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonLogoutActionPerformed(evt);
            }
        });

        jMenuUsuario.setText("Usuário");
        jMenuUsuario.setEnabled(false);

        jMenuItemCadastrarUsuario.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemCadastrarUsuario.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/cadastrar_usuario.png"))); // NOI18N
        jMenuItemCadastrarUsuario.setText("Cadastrar Usuário");
        jMenuItemCadastrarUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemCadastrarUsuarioActionPerformed(evt);
            }
        });
        jMenuUsuario.add(jMenuItemCadastrarUsuario);

        jMenuItemListarUsuario.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItemListarUsuario.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/procurar_usuario.png"))); // NOI18N
        jMenuItemListarUsuario.setText("Listar Usuário");
        jMenuItemListarUsuario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemListarUsuarioActionPerformed(evt);
            }
        });
        jMenuUsuario.add(jMenuItemListarUsuario);

        jMenuBar1.add(jMenuUsuario);

        jMenuPerfil.setText("Perfil");
        jMenuPerfil.setEnabled(false);

        jMenuItemCadastroPerfil.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/cadastrar_usuario.png"))); // NOI18N
        jMenuItemCadastroPerfil.setText("Cadastro de Perfil");
        jMenuItemCadastroPerfil.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemCadastroPerfilActionPerformed(evt);
            }
        });
        jMenuPerfil.add(jMenuItemCadastroPerfil);

        jMenuItemListarPerfil.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/editar_usuario.png"))); // NOI18N
        jMenuItemListarPerfil.setText("Listar Perfis");
        jMenuItemListarPerfil.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemListarPerfilActionPerformed(evt);
            }
        });
        jMenuPerfil.add(jMenuItemListarPerfil);

        jMenuBar1.add(jMenuPerfil);

        jMenuObras.setText("Obras");

        jMenuItemCadastrarObra.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/cadastrar_obra.png"))); // NOI18N
        jMenuItemCadastrarObra.setText("Cadastrar Obra");
        jMenuItemCadastrarObra.setEnabled(false);
        jMenuItemCadastrarObra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemCadastrarObraActionPerformed(evt);
            }
        });
        jMenuObras.add(jMenuItemCadastrarObra);

        jMenuItemConsultarAcervo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/procurar_obra.png"))); // NOI18N
        jMenuItemConsultarAcervo.setText("Consultar Acervo");
        jMenuItemConsultarAcervo.setEnabled(false);
        jMenuItemConsultarAcervo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemConsultarAcervoActionPerformed(evt);
            }
        });
        jMenuObras.add(jMenuItemConsultarAcervo);

        jMenuBar1.add(jMenuObras);

        jMenuEmprestimos.setText("Empréstimos");

        jMenuItemEmprestimoObra.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/emprestimo.png"))); // NOI18N
        jMenuItemEmprestimoObra.setText("Empréstimo de Obra");
        jMenuItemEmprestimoObra.setEnabled(false);
        jMenuItemEmprestimoObra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemEmprestimoObraActionPerformed(evt);
            }
        });
        jMenuEmprestimos.add(jMenuItemEmprestimoObra);

        jMenuItemDevolucaoObra.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/devolucao.png"))); // NOI18N
        jMenuItemDevolucaoObra.setText("Devolução de Obra");
        jMenuItemDevolucaoObra.setEnabled(false);
        jMenuItemDevolucaoObra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemDevolucaoObraActionPerformed(evt);
            }
        });
        jMenuEmprestimos.add(jMenuItemDevolucaoObra);

        jMenuItemRenovacaoObra.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/renovacao.png"))); // NOI18N
        jMenuItemRenovacaoObra.setText("Renovação de Obra");
        jMenuItemRenovacaoObra.setEnabled(false);
        jMenuItemRenovacaoObra.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRenovacaoObraActionPerformed(evt);
            }
        });
        jMenuEmprestimos.add(jMenuItemRenovacaoObra);

        jMenuItemRegistrarPagamento.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dinheiro.png"))); // NOI18N
        jMenuItemRegistrarPagamento.setText("Registrar Pagamento");
        jMenuItemRegistrarPagamento.setEnabled(false);
        jMenuItemRegistrarPagamento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRegistrarPagamentoActionPerformed(evt);
            }
        });
        jMenuEmprestimos.add(jMenuItemRegistrarPagamento);

        jMenuBar1.add(jMenuEmprestimos);

        jMenuRelatorios.setText("Relatórios");
        jMenuRelatorios.setEnabled(false);

        jMenuItemRelatorioObrasEmprestadas.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dasdasdasd.png"))); // NOI18N
        jMenuItemRelatorioObrasEmprestadas.setText("Relatório Obras Emprestadas");
        jMenuItemRelatorioObrasEmprestadas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRelatorioObrasEmprestadasActionPerformed(evt);
            }
        });
        jMenuRelatorios.add(jMenuItemRelatorioObrasEmprestadas);

        jMenuItemRelatorioObrasReservadas.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dasdasdasd.png"))); // NOI18N
        jMenuItemRelatorioObrasReservadas.setText("Obras Reservadas");
        jMenuItemRelatorioObrasReservadas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRelatorioObrasReservadasActionPerformed(evt);
            }
        });
        jMenuRelatorios.add(jMenuItemRelatorioObrasReservadas);

        jMenuItemRelatorioObrasDevolucaoAtraso.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dasdasdasd.png"))); // NOI18N
        jMenuItemRelatorioObrasDevolucaoAtraso.setText("Obras com Devolução em Atraso");
        jMenuItemRelatorioObrasDevolucaoAtraso.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRelatorioObrasDevolucaoAtrasoActionPerformed(evt);
            }
        });
        jMenuRelatorios.add(jMenuItemRelatorioObrasDevolucaoAtraso);

        jMenuItemRelatorioObrasMaisRetiradas.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dasdasdasd.png"))); // NOI18N
        jMenuItemRelatorioObrasMaisRetiradas.setText("Obras Mais Retiradas");
        jMenuItemRelatorioObrasMaisRetiradas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRelatorioObrasMaisRetiradasActionPerformed(evt);
            }
        });
        jMenuRelatorios.add(jMenuItemRelatorioObrasMaisRetiradas);

        jMenuItemRelatorioUsuarioEmprestimoAtivo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dasdasdasd.png"))); // NOI18N
        jMenuItemRelatorioUsuarioEmprestimoAtivo.setText("Usuários com Emprestimo Ativo");
        jMenuItemRelatorioUsuarioEmprestimoAtivo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRelatorioUsuarioEmprestimoAtivoActionPerformed(evt);
            }
        });
        jMenuRelatorios.add(jMenuItemRelatorioUsuarioEmprestimoAtivo);

        jMenuItemRelatorioUsuarioDevolucaoAtraso.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dasdasdasd.png"))); // NOI18N
        jMenuItemRelatorioUsuarioDevolucaoAtraso.setText("Usuários com Devolução em Atraso");
        jMenuItemRelatorioUsuarioDevolucaoAtraso.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRelatorioUsuarioDevolucaoAtrasoActionPerformed(evt);
            }
        });
        jMenuRelatorios.add(jMenuItemRelatorioUsuarioDevolucaoAtraso);

        jMenuItemRelatorioUsuarioDebitoPendente.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icones/dasdasdasd.png"))); // NOI18N
        jMenuItemRelatorioUsuarioDebitoPendente.setText("Usuário com Débitos Pendentes");
        jMenuItemRelatorioUsuarioDebitoPendente.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItemRelatorioUsuarioDebitoPendenteActionPerformed(evt);
            }
        });
        jMenuRelatorios.add(jMenuItemRelatorioUsuarioDebitoPendente);

        jMenuBar1.add(jMenuRelatorios);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabelTotalDebito)
                                .addGap(29, 29, 29)
                                .addComponent(jLabelValor))
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 1093, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(0, 18, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jButtonLogout)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
            .addGroup(layout.createSequentialGroup()
                .addGap(135, 135, 135)
                .addComponent(jLabelEmprestimos)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(82, 82, 82)
                .addComponent(jLabelEmprestimos)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelTotalDebito)
                    .addComponent(jLabelValor, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 235, Short.MAX_VALUE)
                .addComponent(jButtonLogout)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jMenuItemConsultarAcervoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemConsultarAcervoActionPerformed
        new JDialogListarObra(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemConsultarAcervoActionPerformed

    private void jMenuItemRelatorioObrasEmprestadasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRelatorioObrasEmprestadasActionPerformed
        new JDialogRelatorio(this, true, JDialogRelatorio.TipoRelatorio.OBRAS_EMPRESTADAS).setVisible(true);
    }//GEN-LAST:event_jMenuItemRelatorioObrasEmprestadasActionPerformed

    private void jMenuItemRelatorioUsuarioDebitoPendenteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRelatorioUsuarioDebitoPendenteActionPerformed
        new JDialogRelatorio(this, true, JDialogRelatorio.TipoRelatorio.USUARIO_DEBITOS).setVisible(true);
    }//GEN-LAST:event_jMenuItemRelatorioUsuarioDebitoPendenteActionPerformed

    private void jMenuItemCadastrarUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemCadastrarUsuarioActionPerformed
        new JDialogCadastrarEditarUsuario(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemCadastrarUsuarioActionPerformed

    private void jMenuItemRelatorioObrasReservadasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRelatorioObrasReservadasActionPerformed
        new JDialogRelatorio(this, true, JDialogRelatorio.TipoRelatorio.OBRAS_RESERVADAS).setVisible(true);
    }//GEN-LAST:event_jMenuItemRelatorioObrasReservadasActionPerformed

    private void jMenuItemListarUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemListarUsuarioActionPerformed
        new JDialogListarUsuario(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemListarUsuarioActionPerformed

    private void jMenuItemCadastroPerfilActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemCadastroPerfilActionPerformed
        new JDialogCadastrarAlterarPerfil(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemCadastroPerfilActionPerformed

    private void jMenuItemListarPerfilActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemListarPerfilActionPerformed
        new JDialogListarPerfil(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemListarPerfilActionPerformed

    private void jMenuItemCadastrarObraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemCadastrarObraActionPerformed
        new JDialogCadastrarAlterarObra(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemCadastrarObraActionPerformed

    private void jMenuItemEmprestimoObraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemEmprestimoObraActionPerformed
        new JDialogEmprestimos(this, true).setVisible(true);
        preencherTabela();
    }//GEN-LAST:event_jMenuItemEmprestimoObraActionPerformed

    private void jMenuItemDevolucaoObraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemDevolucaoObraActionPerformed
        new JDialogDevolucao(this, true).setVisible(true);
        preencherTabela();
    }//GEN-LAST:event_jMenuItemDevolucaoObraActionPerformed

    private void jMenuItemRenovacaoObraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRenovacaoObraActionPerformed
        new JDialogRenovacao(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemRenovacaoObraActionPerformed

    private void jMenuItemRelatorioObrasDevolucaoAtrasoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRelatorioObrasDevolucaoAtrasoActionPerformed
        new JDialogRelatorio(this, true, JDialogRelatorio.TipoRelatorio.OBRAS_DEVOLUCAO_ATRASO).setVisible(true);
    }//GEN-LAST:event_jMenuItemRelatorioObrasDevolucaoAtrasoActionPerformed

    private void jMenuItemRelatorioObrasMaisRetiradasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRelatorioObrasMaisRetiradasActionPerformed
        new JDialogRelatorio(this, true, JDialogRelatorio.TipoRelatorio.OBRAS_MAIS_RETIRADAS).setVisible(true);
    }//GEN-LAST:event_jMenuItemRelatorioObrasMaisRetiradasActionPerformed

    private void jMenuItemRelatorioUsuarioEmprestimoAtivoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRelatorioUsuarioEmprestimoAtivoActionPerformed
        new JDialogRelatorio(this, true, JDialogRelatorio.TipoRelatorio.USUARIO_EMPRESTIMO).setVisible(true);
    }//GEN-LAST:event_jMenuItemRelatorioUsuarioEmprestimoAtivoActionPerformed

    private void jMenuItemRelatorioUsuarioDevolucaoAtrasoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRelatorioUsuarioDevolucaoAtrasoActionPerformed
        new JDialogRelatorio(this, true, JDialogRelatorio.TipoRelatorio.USUARIO_DEVOLUCAO_ATRASO).setVisible(true);
    }//GEN-LAST:event_jMenuItemRelatorioUsuarioDevolucaoAtrasoActionPerformed

    private void jMenuItemRegistrarPagamentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemRegistrarPagamentoActionPerformed
        new JDialogRegistrarPagamento(this, true).setVisible(true);
    }//GEN-LAST:event_jMenuItemRegistrarPagamentoActionPerformed

    private void jButtonLogoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLogoutActionPerformed
        dispose();
        new JFrameLogin().setVisible(true);
    }//GEN-LAST:event_jButtonLogoutActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonLogout;
    private javax.swing.JLabel jLabelEmprestimos;
    private javax.swing.JLabel jLabelTotalDebito;
    private javax.swing.JLabel jLabelValor;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenu jMenuEmprestimos;
    private javax.swing.JMenuItem jMenuItemCadastrarObra;
    private javax.swing.JMenuItem jMenuItemCadastrarUsuario;
    private javax.swing.JMenuItem jMenuItemCadastroPerfil;
    private javax.swing.JMenuItem jMenuItemConsultarAcervo;
    private javax.swing.JMenuItem jMenuItemDevolucaoObra;
    private javax.swing.JMenuItem jMenuItemEmprestimoObra;
    private javax.swing.JMenuItem jMenuItemListarPerfil;
    private javax.swing.JMenuItem jMenuItemListarUsuario;
    private javax.swing.JMenuItem jMenuItemRegistrarPagamento;
    private javax.swing.JMenuItem jMenuItemRelatorioObrasDevolucaoAtraso;
    private javax.swing.JMenuItem jMenuItemRelatorioObrasEmprestadas;
    private javax.swing.JMenuItem jMenuItemRelatorioObrasMaisRetiradas;
    private javax.swing.JMenuItem jMenuItemRelatorioObrasReservadas;
    private javax.swing.JMenuItem jMenuItemRelatorioUsuarioDebitoPendente;
    private javax.swing.JMenuItem jMenuItemRelatorioUsuarioDevolucaoAtraso;
    private javax.swing.JMenuItem jMenuItemRelatorioUsuarioEmprestimoAtivo;
    private javax.swing.JMenuItem jMenuItemRenovacaoObra;
    private javax.swing.JMenu jMenuObras;
    private javax.swing.JMenu jMenuPerfil;
    private javax.swing.JMenu jMenuRelatorios;
    private javax.swing.JMenu jMenuUsuario;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTableEmprestimos;
    // End of variables declaration//GEN-END:variables

    private void preencherTabela() {
        DefaultTableModel model = (DefaultTableModel) jTableEmprestimos.getModel();
        model.setNumRows(0);
        Object[] rowData = new Object[5];
        double soma = 0;
        for (Emprestimo emprestimo : usuarioLogado.getEmprestimosAtivos()) {
            rowData[0] = emprestimo.getExemplar();
            rowData[1] = emprestimo.getExemplar().getObra().getTitulo();
            rowData[2] = Util.dateToString(emprestimo.getDataEmprestimo());
            rowData[3] = Util.dateToString(emprestimo.getPrazoDevolucao());
            if (emprestimo.isAtrasado()) {
                double valor = emprestimo.getDiasAtrasado() * Debito.getValorMulta();
                soma += valor;
                rowData[4] = valor;
            } else {
                rowData[4] = 0;
            }
            model.addRow(rowData);
        }     
        jTableEmprestimos.setModel(model);
        jLabelValor.setText(String.format("R$ %.2f", soma));
    }

    private void definirMenus() {
        for (Atividade atividade : usuarioLogado.getPerfil().getAtividades()) {
            switch (atividade) {
                case AUTORIZAR_EMPRESTIMO:
                    jMenuItemEmprestimoObra.setEnabled(true);
                    break;
                case CONSULTAR_ACERVO:
                    jMenuItemConsultarAcervo.setEnabled(true);
                    break;
                case EMITIR_RELATORIOS:
                    jMenuRelatorios.setEnabled(true);
                    break;
                case GERENCIAR_ACERVO:
                    jMenuItemCadastrarObra.setEnabled(true);
                    break;
                case GERENCIAR_PERFIS:
                    jMenuPerfil.setEnabled(true);
                    break;
                case GERENCIAR_USUARIO:
                    jMenuUsuario.setEnabled(true);
                    break;
                case RECEBER_DEVOLUCOES:
                    jMenuItemDevolucaoObra.setEnabled(true);
                    break;
                case RECEBER_PAGAMENTOS:
                    jMenuItemRegistrarPagamento.setEnabled(true);
                    break;
                case RENOVAR_EMPRESTIMO:
                    jMenuItemRenovacaoObra.setEnabled(true);
                    break;
            }
        }        
    }
}
